/*
** 2262.c
** 
** Made by (seakage2h)
** Login   <seakage2h@seakage2h-ubuntu>
** 
** Started on  Fri Oct  3 17:16:14 2008 seakage2h
** Last update Sun May 12 01:17:25 2002 Speed Blue
*/

/* #include "2262.h" */
#include <stdio.h>
#include <stdlib.h>

#define BOUND 1000001

int main()
{
     char* num;
     int prime_num[100000], i, j, p;
     int target;
     
     num = (char*)calloc(BOUND, sizeof(char));
     for(i = 2, p = 0; i < BOUND; i++)
	  if (!num[i]){		/* not combinational number */
	       prime_num[p++] = i;
	       for(j = 2*i; j < BOUND; j += i)
		    num[j] = 1;
	  }
     while(scanf("%d", &target)){
	  if (!target) break;
	  for(i = 0; prime_num[i] <= target/2; i++)
	       if (!num[target - prime_num[i]]){ /* two prime number */
		    printf("%d = %d + %d\n",
			   target, prime_num[i], target - prime_num[i]);
		    break;
	       }
     }
     return 0;
}

